home *** CD-ROM | disk | FTP | other *** search
/ Amiga News 95 / Amiga News 95.iso / dpat / dpat05 / coords / coords.c < prev    next >
C/C++ Source or Header  |  1990-02-23  |  20KB  |  378 lines

  1. /******************************************************************************/
  2. /*                                                                            */
  3. /*        Coords                                                              */
  4. /*                                                                            */
  5. /* Ce programme affiche en permanence la position du pointeur                 */
  6. /* .............................................                              */
  7. /*                                                                            */
  8. /* Compilé avec Lattice 5.04                                                   */
  9. /*                                                                            */
  10. /******************************************************************************/
  11.  
  12. #include <intuition/intuition.h>
  13. #include <intuition/intuitionbase.h>
  14. #include <string.h>
  15. #include <graphics/gfx.h>
  16. #include <graphics/gfxbase.h>
  17. #include <proto/intuition.h>
  18. #include <proto/graphics.h>
  19. #include <libraries/dos.h>      /* Ces deux fichiers sont necessaire */
  20. #include <proto/dos.h>          /* pour linker avec `cback.o'        */
  21. #include <proto/exec.h>
  22.  
  23. long _stack=4000;               /* Initialisations pour cback.o */
  24. char *_procname="Coords";
  25. long _priority=-1;              /* priorite -1 suffit largement */
  26. long _BackGroundIO=0;
  27.  
  28. #define RPORT Fenetre->RPort    /* Raccourci pour acceder au rastport */
  29. #define ECRAN 0
  30. #define FENETRE 1
  31.  
  32.  
  33. struct IntuitionBase far *IntuitionBase; /* Pour ouvrir Intuition et*/
  34. struct GfxBase far *GfxBase;             /* Graphics    */
  35. struct Window *Fenetre;                  /* Notre fenetre */
  36. struct IntuiMessage *Message;            /* Pour recevoir des messages */
  37. struct Menu Menus;                       /* 1 menu */
  38. struct MenuItem Items[3];                /* 3 Items */
  39. struct MenuItem SubItem;                 /* 1 SubIem pour ImageSignature */
  40. struct IntuiText Texts[3];               /* 3 IntuiTexts pour les Items */
  41.  
  42. char *IString[3]={
  43.     "   Ecran Actif","   Fenetre Active","Info"
  44.     };                                          /* Les points du menu */
  45.  
  46. char ascoord[3];                /* Tableau char pour coord->ASCII */
  47.  
  48. int lastx,lasty;                /* Pour ne pas reecrire inutilement */
  49.  
  50. BOOL flag=0;            /* Variable pour relativite de la mesure */
  51.  
  52. UWORD chip ImageSignature_data[16 * 30 * 2] = {
  53. 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
  54. 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
  55. 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
  56. 0xffff,0xffff,0xffff,0xffff,0xffff,0x9fff,0xffff,0xffff,0xffff,0xffff,0x9fff,0xffff,0xffff,0xffff,0xffff,0xffff,
  57. 0xffff,0xff7f,0x7fff,0xffff,0xffff,0x3fff,0xffff,0xffff,0xffff,0xffff,0x3fff,0xffff,0xffff,0xfffd,0xfdff,0xffff,
  58. 0xffff,0xffbe,0xffff,0xffff,0xfffe,0x7fff,0xffff,0xffff,0xffff,0xfffe,0x7cff,0xffff,0xffff,0xfffe,0xfbff,0xffff,
  59. 0xffff,0xfedd,0xbfff,0xfffe,0x0703,0xffff,0xffff,0xfffc,0x1fff,0xffff,0xf8ff,0xffff,0xffff,0xfffb,0x76ff,0xffff,
  60. 0xfffd,0xffeb,0xffdf,0xffff,0x0fc4,0x1038,0x1c03,0xffff,0x0fe0,0x861c,0x1000,0xe01f,0xffff,0xf7ff,0xafff,0x7fff,
  61. 0xfffd,0xbf3e,0x7edf,0xffff,0x8fce,0x187c,0x38e3,0xffff,0x87f0,0x208e,0x1f8f,0xc71f,0xffff,0xf6fc,0xf9fb,0x7fff,
  62. 0xfffe,0x73aa,0xe73f,0xffff,0x8fcf,0x1c7e,0x71e3,0xffff,0x03f8,0x71c7,0x1e3f,0x8f1f,0xffff,0xf9ce,0xab9c,0xffff,
  63. 0xffff,0x29d5,0xca7f,0xffff,0x8fcf,0x1c7e,0x63e3,0xfffe,0x61f8,0xf1c7,0x1c7f,0x1f1f,0xffff,0xfca7,0x5729,0xffff,
  64. 0xffc8,0x79ff,0xcf09,0xffff,0xc79f,0x1e3c,0xe3e3,0xfff9,0xc0f8,0xf1c7,0x18ff,0x1f1f,0xffff,0x21e7,0xff3c,0x27ff,
  65. 0xfff7,0x73ff,0xe777,0xffff,0xe33f,0x1f19,0xf1e3,0xfff1,0x9878,0xf1c7,0x1c7f,0x8f1f,0xffff,0xddcf,0xff9d,0xdfff,
  66. 0xffff,0x07ff,0xf07f,0xffff,0xf07f,0x1f83,0xf8e0,0x7ff0,0x7c38,0xf1c7,0x1e3f,0xc703,0xffff,0xfc1f,0xffc1,0xffff,
  67. 0xffff,0xffff,0xffff,0xffff,0xf8ff,0x1fc7,0xfc00,0xfff9,0xfe18,0xe38f,0x1f87,0xe007,0xffff,0xffff,0xffff,0xffff,
  68. 0xffff,0x07ff,0xf07f,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xfff1,0xffff,0xffff,0xfc1f,0xffc1,0xffff,
  69. 0xfff7,0x73ff,0xe777,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xfe78,0xffff,0xffff,0xddcf,0xff9d,0xdfff,
  70. 0xffc8,0x3dff,0xde09,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xf871,0xffff,0xffff,0x20f7,0xff78,0x27ff,
  71. 0xffff,0x6380,0xe37f,0xe007,0xffff,0xffff,0xffff,0xe007,0xffff,0xfcff,0xff03,0xf1ff,0xffff,0xfd8e,0x038d,0xffff,
  72. 0xfffe,0xff3e,0x7fbf,0xe003,0xffff,0xffff,0xffff,0xe007,0xffff,0xf87f,0xffff,0xf1ff,0xffff,0xfbfc,0xf9fe,0xffff,
  73. 0xfffd,0xbfaa,0xfedf,0xf1e1,0xffff,0xffff,0xffff,0xc7c7,0xffff,0xf87f,0xffff,0xf3ff,0xffff,0xf6fe,0xabfb,0x7fff,
  74. 0xffff,0xffc9,0xffff,0xf1e0,0x010c,0x200f,0x01ff,0x8fe6,0x0218,0x6038,0x6100,0x61e0,0x200f,0xffff,0x27ff,0xffff,
  75. 0xffff,0xfedd,0xbfff,0xf001,0x000c,0x2006,0x00ff,0xcffc,0x0018,0x7378,0x6100,0x21c0,0x0007,0xfffb,0x76ff,0xffff,
  76. 0xffff,0xff3e,0x7fff,0xf20e,0xdb8e,0x31c6,0x78ff,0x9ffc,0xf11c,0x79fc,0x7186,0x31c8,0x10c7,0xfffc,0xf9ff,0xffff,
  77. 0xffff,0xffff,0xffff,0xf5ea,0xbfce,0xbdf6,0x3eff,0xefe4,0x7d9d,0x7afe,0x75ef,0xf9c2,0x19ff,0xffff,0xffff,0xffff,
  78. 0xffff,0xffff,0xffff,0xfbf7,0xffbe,0xb7df,0xfbff,0x97df,0xf77d,0x7d8d,0xf5bf,0xf7ff,0x97ff,0xffff,0xffff,0xffff,
  79. 0xffff,0xffff,0xffff,0xe408,0x9ff1,0xceba,0xc7ff,0xd01d,0x8fe3,0xba2f,0x8e77,0xeed8,0x6eff,0xffff,0xffff,0xffff,
  80. 0xffff,0xffff,0xffff,0xf7ff,0xffff,0xfeff,0xfdff,0xf7ff,0xfbfe,0xffff,0xfbf7,0xffff,0xbfff,0xffff,0xffff,0xffff,
  81. 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
  82. 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
  83. 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  84. 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  85. 0x0000,0x0000,0x0000,0x0000,0x0000,0x6000,0x0000,0x0000,0x0000,0x0000,0x6000,0x0000,0x0000,0x0000,0x0000,0x0000,
  86. 0x0000,0x0000,0x0000,0x0000,0x0000,0xf000,0x0000,0x0000,0x0000,0x0000,0xf000,0x0000,0x0000,0x0000,0x0000,0x0000,
  87. 0x0000,0x0080,0x8000,0x0000,0x0001,0xe000,0x0000,0x0000,0x0000,0x0001,0xe300,0x0000,0x0000,0x0002,0x0200,0x0000,
  88. 0x0000,0x0041,0x0000,0x0001,0xf8ff,0xc000,0x0000,0x0003,0xe000,0x0003,0xc780,0x0000,0x0000,0x0001,0x0400,0x0000,
  89. 0x0000,0x0122,0x4000,0x0003,0xfdff,0xefc7,0xe3fc,0x0007,0xf01f,0x79e3,0xefff,0x1fe0,0x0000,0x0004,0x8900,0x0000,
  90. 0x0002,0x0014,0x0020,0x0001,0xf8ff,0xffef,0xf7fe,0x0003,0xf83f,0xfff7,0xffff,0xbff0,0x0000,0x0800,0x5000,0x8000,
  91. 0x0002,0x40c1,0x8120,0x0000,0xf87b,0xffc7,0xeffe,0x0000,0xfc1f,0xfffb,0xffff,0x7ff0,0x0000,0x0903,0x0604,0x8000,
  92. 0x0001,0x8c55,0x18c0,0x0000,0xf879,0xf7c3,0xdf3e,0x0001,0xfe0f,0xdf7d,0xf3f0,0xf9f0,0x0000,0x0631,0x5463,0x0000,
  93. 0x0000,0xd62a,0x3580,0x0000,0xf879,0xf7c3,0xfe3e,0x0007,0xff0f,0x9f7d,0xf7c1,0xf1f0,0x0000,0x0358,0xa8d6,0x0000,
  94. 0x0037,0x8600,0x30f6,0x0000,0x7cf1,0xf3e7,0xbe3e,0x000f,0xff8f,0x9f7d,0xff81,0xf1f0,0x0000,0xde18,0x00c3,0xd800,
  95. 0x0008,0x8c00,0x1888,0x0000,0x3fe1,0xf1ff,0x1f3f,0x801f,0xffcf,0x9f7d,0xf7c0,0xf9fc,0x0000,0x2230,0x0062,0x2000,
  96. 0x0000,0xf800,0x0f80,0x0000,0x1fc1,0xf0fe,0x0fff,0xc01f,0xe7ef,0x9f7d,0xf3f8,0x7ffe,0x0000,0x03e0,0x003e,0x0000,
  97. 0x0000,0x0000,0x0000,0x0000,0x0f81,0xf07c,0x07ff,0x800f,0x83ff,0xbef9,0xf1fe,0x3ffc,0x0000,0x0000,0x0000,0x0000,
  98. 0x0000,0xf800,0x0f80,0x0000,0x0700,0xe038,0x03ff,0x0006,0x01e7,0x1c70,0xe1ff,0x1ff8,0x0000,0x03e0,0x003e,0x0000,
  99. 0x0008,0x8c00,0x1888,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x07cf,0x8000,0x0000,0x2230,0x0062,0x2000,
  100. 0x0037,0xc200,0x21f6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0fff,0x0000,0x0000,0xdf08,0x0087,0xd800,
  101. 0x0000,0x9c7f,0x1c80,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x07fe,0x0000,0x0000,0x0271,0xfc72,0x0000,
  102. 0x0001,0x00c1,0x8040,0x1ff8,0x0000,0x0000,0x0000,0x1ff8,0x0000,0x0300,0x00fc,0x0e00,0x0000,0x0403,0x0601,0x0000,
  103. 0x0002,0x4055,0x0120,0x0e1c,0x0000,0x0000,0x0000,0x3838,0x0000,0x0700,0x0000,0x0e00,0x0000,0x0901,0x5404,0x8000,
  104. 0x0000,0x0036,0x0000,0x0e1c,0x0000,0x0000,0x0000,0x7018,0x0000,0x0700,0x0000,0x0000,0x0000,0x0000,0xd800,0x0000,
  105. 0x0000,0x0122,0x4000,0x0e1f,0xfef3,0xdff0,0xfe00,0x7001,0xfde7,0x9fc7,0x9eff,0x9e1f,0xdff0,0x0004,0x8900,0x0000,
  106. 0x0000,0x00c1,0x8000,0x0ff9,0xe771,0xce39,0xc700,0x7003,0x8ee3,0x8703,0x8e79,0xce38,0xef38,0x0003,0x0600,0x0000,
  107. 0x0000,0x0000,0x0000,0x0e1d,0xc071,0xce39,0xc700,0x7003,0x8ee3,0x8703,0x8e70,0x0e3f,0xee00,0x0000,0x0000,0x0000,
  108. 0x0000,0x0000,0x0000,0x0e1d,0xc071,0xce39,0xc700,0x701b,0x8ee3,0x8703,0x8e70,0x0e38,0x0e00,0x0000,0x0000,0x0000,
  109. 0x0000,0x0000,0x0000,0x0e1d,0xc071,0xce39,0xc700,0x3833,0x8ee3,0x8773,0x8e70,0x0e38,0x6e00,0x0000,0x0000,0x0000,
  110. 0x0000,0x0000,0x0000,0x1ffb,0xe03f,0x7f7c,0xfe00,0x1fe1,0xfc7f,0xc3e1,0xfff8,0x1f1f,0xdf00,0x0000,0x0000,0x0000,
  111. 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  112. 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000};
  113.  
  114. struct Image ImageSignature = {
  115.    0, 0, 256, 30, 2, &ImageSignature_data[0], 3, 0, NULL};
  116.                                 /* Datas et structure pour signature */
  117. struct NewWindow NouvelleFenetre = {
  118.         0,0,    /* XY relativement a l'angle superieur gauche de l'ecran */
  119.         180,10, /* largeur,hauteur */
  120.         0,1,    /* couleurs(detail,block) */
  121.         CLOSEWINDOW|MENUPICK,   /* Type de message desire(IDCMP) */
  122.         WINDOWDRAG|WINDOWCLOSE, /* autres flags */
  123.         NULL,   /* premier gadget */
  124.         NULL,   /* CHECKMARK personelle */
  125.         "Coords:X=000 Y=000",   /* Titre */
  126.         NULL,   /* pointeur sur un customscreen */
  127.         NULL,   /* pointeur sur une custom bitmap */
  128.         5,5,    /* Tailles minimales */
  129.         640,200,        /* Tailles maximales */
  130.         WBENCHSCREEN    /* Type de l'ecran de destination */
  131. };
  132. char *stpcpy();
  133.  
  134. VOID ModTitre();
  135. VOID OpenAll();
  136. VOID CloseIt();
  137. VOID BuildUpMenu();
  138. VOID DetectMess();
  139.  
  140. /******************************************************************************/
  141. /*                                                                            */
  142. /* C'est partiiii !!!                                                         */
  143. /*                                                                            */
  144. /******************************************************************************/
  145.  
  146. VOID _main()
  147. {
  148.     OpenAll();          /* On prepare tout */
  149.  
  150.     FOREVER             /* Pour toujours   */
  151.     {
  152.         ModTitre();     /* On ecrit les coordonnees actuelles */
  153.         DetectMess();   /* des messages en attente ? */
  154.     }
  155. }
  156.  
  157. /******************************************************************************/
  158. /*                                                                            */
  159. /* Cette fonction ouvre les librairies et la fenetre et construit le menu     */
  160. /*----------------------------------------------------------------------------*/
  161. /* Parametres en entrée :aucun                                                */
  162. /*----------------------------------------------------------------------------*/
  163. /* Valeurs de réponse :aucun                                                  */
  164. /******************************************************************************/
  165.  
  166. VOID OpenAll()
  167. {
  168.  
  169.   IntuitionBase=(struct IntuitionBase *)OpenLibrary("intuition.library",0);
  170.   if (!IntuitionBase)CloseIt();
  171.   GfxBase=(struct GfxBase *)OpenLibrary("graphics.library",0);
  172.   if (!GfxBase)CloseIt();
  173.   Fenetre=(struct Window *)OpenWindow(&NouvelleFenetre);
  174.   if (!Fenetre)CloseIt();
  175.   BuildUpMenu();
  176.   SetMenuStrip(Fenetre,&Menus);
  177. }
  178.  
  179. /******************************************************************************/
  180. /*                                                                            */
  181. /* Cette routine ferme tout                                                   */
  182. /*----------------------------------------------------------------------------*/
  183. /* Parametres en entrée :aucun                                                */
  184. /*----------------------------------------------------------------------------*/
  185. /* Valeurs de réponse :aucune                                                 */
  186. /******************************************************************************/
  187.  
  188. VOID CloseIt()
  189. {
  190.     if(Fenetre)ClearMenuStrip(Fenetre);         /* On ne ferme que ce */
  191.     if(Fenetre)CloseWindow(Fenetre);            /* qui existe !!! */
  192.     if(GfxBase)CloseLibrary((struct Library *)GfxBase);
  193.     if(IntuitionBase)CloseLibrary((struct Library *)IntuitionBase);
  194.  
  195.     exit(0L);                                   /* sortie en douceur */
  196. }
  197.  
  198. /******************************************************************************/
  199. /*                                                                            */
  200. /* Cette detecte un message d'Intuition et reagit                             */
  201. /*----------------------------------------------------------------------------*/
  202. /* Parametres en entrée :aucun                                                */
  203. /*----------------------------------------------------------------------------*/
  204. /* Valeurs de réponse :aucune                                                 */
  205. /******************************************************************************/
  206.  
  207. VOID DetectMess()
  208. {
  209.     int Class,Code;
  210.  
  211.     if(Message=(struct IntuiMessage *)GetMsg(Fenetre->UserPort))
  212.     {
  213.         Class=Message->Class;           /* si il y a un message */
  214.         Code=Message->Code;             /* on recupere les valeurs */
  215.         ReplyMsg((struct Message *)Message);              /* interresantes et on repond */
  216.  
  217.         switch(Class)                   /* Traitement du message */
  218.         {
  219.             case MENUPICK:
  220.                 if(Code!=MENUNULL)
  221.                           switch(MENUNUM(Code))
  222.                           {
  223.                               case 0:
  224.                                   switch(ITEMNUM(Code))
  225.                                   {
  226.                                       case 0:
  227.                                         flag=ECRAN;
  228.                                         break;
  229.                                       case 1:
  230.                                         flag=FENETRE;
  231.                                   }
  232.                           }
  233.                 break;
  234.             case CLOSEWINDOW:
  235.                 CloseIt();
  236.         }
  237.     }
  238. }
  239.  
  240. /******************************************************************************/
  241. /*                                                                            */
  242. /* Cette routine modifie le titre de la fenetre en fonction du pointeur       */
  243. /*                                                                            */
  244. /*----------------------------------------------------------------------------*/
  245. /* Parametres en entrée :aucun                                                */
  246. /*----------------------------------------------------------------------------*/
  247. /* Valeurs de réponse :aucune                                                 */
  248. /******************************************************************************/
  249.  
  250. VOID ModTitre()
  251. {
  252.     int x,y,i;
  253.     char *p;
  254.     static char *Titre="Coords:X=000 Y=000";
  255.  
  256.     if(flag==ECRAN)             /* Determine la relativite de la mesure */
  257.                 {
  258.                     x=IntuitionBase->ActiveScreen->MouseX;
  259.                     y=IntuitionBase->ActiveScreen->MouseY;
  260.                 }
  261.                 else
  262.                 {
  263.                     x=IntuitionBase->ActiveWindow->MouseX;
  264.                     y=IntuitionBase->ActiveWindow->MouseY;
  265.                 }
  266.     if((x!=lastx)||(y!=lasty))  /* la mesure a change ? */
  267.                 {
  268.                         p=stpcpy(Titre,"Coords:X=");    /* Construire la */
  269.                         stci_d(ascoord,x);      /* nouvelle chaine */
  270.                         for(i=0;i<3-strlen(ascoord);++i)
  271.                                 p=stpcpy(p," ");
  272.                         p=stpcpy(p,ascoord);
  273.                         p=stpcpy(p," Y=");
  274.                         stci_d(ascoord,y);
  275.                         for(i=0;i<3-strlen(ascoord);++i)
  276.                                 p=stpcpy(p," ");
  277.                         p=stpcpy(p,ascoord);
  278.  
  279.                         Move(RPORT,32,1+RPORT->TxBaseline); /* ecrire la */
  280.                         Text(RPORT,Titre,strlen(Titre));    /* chaine */
  281.  
  282.                         lastx=x;        /* se souvenir pour eviter */
  283.                         lasty=y;        /* de calculer et d'ecrire */
  284.                 }                       /* deux fois la meme chaine */
  285.  
  286. }
  287.  
  288. /******************************************************************************/
  289. /*                                                                            */
  290. /* Cette fonction construit un menu et ses entrées                            */
  291. /*----------------------------------------------------------------------------*/
  292. /* Parametres en entrée :aucun                                                */
  293. /*----------------------------------------------------------------------------*/
  294. /* Valeurs de réponse :aucune                                                 */
  295. /* Rques:il faut définir BuilDUpMenu(),struct Menu Menus,                     */
  296. /* struct MenuItem Items,struct IntuiText Texts,char *IString...              */
  297. /* dans le prg                                                                */
  298. /******************************************************************************/
  299.  
  300. VOID BuildUpMenu()
  301. {
  302.     Items[0].LeftEdge=1;                        /* Item 1 */
  303.     Items[0].TopEdge=0;
  304.     Items[0].Width=120+CHECKWIDTH; Items[0].Height=10;
  305.     Items[0].Flags=ITEMTEXT|ITEMENABLED|CHECKIT|CHECKED|HIGHBOX;
  306.     Items[0].MutualExclude=2;
  307.     Items[0].ItemFill=(APTR)&Texts[0];
  308.     Items[0].SelectFill=NULL;
  309.     Items[0].Command=NULL;
  310.     Items[0].SubItem=NULL;
  311.     Items[0].NextSelect=NULL;
  312.  
  313.     Texts[0].FrontPen=3; Texts[0].BackPen=1;
  314.     Texts[0].DrawMode=JAM1;
  315.     Texts[0].LeftEdge=1; Texts[0].TopEdge=1;
  316.     Texts[0].ITextFont=NULL;
  317.     Texts[0].IText=IString[0];
  318.     Texts[0].NextText=NULL;
  319.  
  320.     Items[1].LeftEdge=1;                        /* Item 2 */
  321.     Items[1].TopEdge=10;
  322.     Items[1].Width=120+CHECKWIDTH; Items[1].Height=10;
  323.     Items[1].Flags=ITEMTEXT|ITEMENABLED|CHECKIT|HIGHBOX;
  324.     Items[1].MutualExclude=1;
  325.     Items[1].ItemFill=(APTR)&Texts[1];
  326.     Items[1].SelectFill=NULL;
  327.     Items[1].Command=NULL;
  328.     Items[1].SubItem=NULL;
  329.     Items[1].NextSelect=NULL;
  330.  
  331.     Texts[1].FrontPen=3; Texts[1].BackPen=1;
  332.     Texts[1].DrawMode=JAM1;
  333.     Texts[1].LeftEdge=1; Texts[1].TopEdge=1;
  334.     Texts[1].ITextFont=NULL;
  335.     Texts[1].IText=IString[1];
  336.     Texts[1].NextText=NULL;
  337.  
  338.     Items[2].LeftEdge=1;                        /* Item 3 */
  339.     Items[2].TopEdge=20;
  340.     Items[2].Width=120; Items[2].Height=10;
  341.     Items[2].Flags=ITEMTEXT|ITEMENABLED|HIGHBOX;
  342.     Items[2].MutualExclude=NULL;
  343.     Items[2].ItemFill=(APTR)&Texts[2];
  344.     Items[2].SelectFill=NULL;
  345.     Items[2].Command=NULL;
  346.     Items[2].SubItem=&SubItem;
  347.     Items[2].NextSelect=NULL;
  348.  
  349.     Texts[2].FrontPen=3; Texts[2].BackPen=1;
  350.     Texts[2].DrawMode=JAM1;
  351.     Texts[2].LeftEdge=1; Texts[2].TopEdge=1;
  352.     Texts[2].ITextFont=NULL;
  353.     Texts[2].IText=IString[2];
  354.     Texts[2].NextText=NULL;
  355.  
  356.     SubItem.NextItem=NULL;
  357.     SubItem.LeftEdge=120;                       /* SubItem 1 */
  358.     SubItem.TopEdge=0;
  359.     SubItem.Width=256; SubItem.Height=30;
  360.     SubItem.Flags=ITEMENABLED|HIGHCOMP;
  361.     SubItem.MutualExclude=NULL;
  362.     SubItem.ItemFill=(APTR)&ImageSignature;
  363.     SubItem.SelectFill=NULL;
  364.     SubItem.Command=NULL;
  365.     SubItem.SubItem=NULL;
  366.     SubItem.NextSelect=NULL;
  367.  
  368.     Items[0].NextItem=&Items[1];
  369.     Items[1].NextItem=&Items[2];
  370.  
  371.     Menus.NextMenu=NULL;                        /* Menu */
  372.     Menus.LeftEdge=0; Menus.TopEdge=0;
  373.     Menus.Width=63;   Menus.Height=10;
  374.     Menus.Flags=MENUENABLED;
  375.     Menus.MenuName="Projets";
  376.     Menus.FirstItem=&Items[0];
  377. }
  378.